home *** CD-ROM | disk | FTP | other *** search
/ Tech Win 1999 February / TECH Win 02-1999 Disc A.iso / ols / lzh / wc110.lzh / WC.TXT < prev   
Encoding:
Text File  |  1998-09-01  |  13.6 KB  |  358 lines

  1.        自動頭出し機能付き Windows Waveファイル専用 比較ユーティリティ
  2.  
  3.                      Wave Compare  for Windows95/98/NT4
  4.  
  5.  
  6. ---------------------------------------------------------------------------
  7.  
  8. 【はじめに】
  9.  
  10.   この Wave Compare は、先頭位置のずれた2つのWaveファイルを比較するための
  11. ツールです。
  12.  
  13. 最近の CD-R の普及とともに、音楽CD(CD-DA)より吸い出した音楽データ
  14. (Waveファイル)を並び変えたりして、自分専用のアルバムを作る方が増えていると
  15. 思います。
  16. しかし、その時のWaveファイルが、fc/b 等で比較すると、読み出す度に違って
  17. いることに気付き、正確に読み出されていないのではないかと思われた方も
  18. 多いでしょう。
  19.  
  20. これは、CD-R / CD-ROM で CD-DA を読み出す際に、データが前後に少しずれること
  21. があるためにそうなります。
  22.  
  23. 使用するドライブと速度、読み出しソフトにもよるのですが、聴いてみてノイズ無く
  24. 読み出されている場合には、2つのファイルの先頭を Waveファイル編集ソフト等で
  25. 揃えてから比較すれば、ほとんどの場合、同一のデータになっていることがわかる
  26. はずです。
  27.  
  28. しかし、このような Waveファイル編集ソフトでの頭出しは、結構面倒ですので、
  29. これを簡単に自動的にやって比較してくれるようなものがあれば便利だと思って
  30. 作ったのが、この「Wave Compare」です。
  31.  
  32. 自分の使用しているドライブや、読み出しソフトの条件を色々と変えてチェックし、
  33. 正確に読み出されているか、あるいは正しくCD-Rに焼かれたかを確認することが
  34. とても簡単になります。
  35.  
  36.  
  37.  ※ 先頭を合わせずにそのまま比較して違うことにより、単純に CD-DA 読み出しは
  38.    CD-ROM と違ってエラーがある、というように誤解されている方もおられるよう
  39.    ですが、CD-DA も元々 CIRC (クロス インターリーブ リードソロモン コード)
  40.    によって、強力なエラー訂正がされていますので、通常のキズ、ほこり程度では、
  41.    まず完全に読み出されます。(実際は、補間されることも、まず起こりません)
  42.          (CD-ROM は、全く同様にして読み出されたデータの中に、念の為
  43.            さらにエラー検出/訂正のためのコードが入っているだけのことです)
  44.  
  45.    読み出し速度が速すぎた場合などに入る途中のノイズは別の理由から起こります。
  46.  
  47.    CD-DA を読み出す場合、内容が音楽信号で多少のずれは問題ではない為、頭出しに
  48.    対するデータ読み出しの精度は元々決められていません。(サブコードとの関係)
  49.    よって、最初の位置がドライブ(使用されているIC、ファームウェア)によって
  50.    多少違うわけですが、その後連続的に読み出されている限り正確なデータが読み
  51.    出されます。
  52.    しかし書込みが間に合わない等の理由により、再び頭出し動作が行われた場合には
  53.    再び位置のずれがおこり、もしデータが不連続となった場合にノイズとなります。
  54.    それで使用するドライブや読み出し速度によって違ってくる訳です。
  55.      ・読み出しソフトによってはその場合、何度も読んで補正するものもあります。
  56.      ・最近のドライブでは、ずれがないものが増えてきているようです。
  57.  
  58.  
  59. ---------------------------------------------------------------------------
  60.  
  61. 【インストール】
  62.  
  63.   適当なディレクトリに WC.EXE を入れるだけです。
  64.   そして、起動するためのショートカット等、適当に作っておけばそれで終わりです。
  65.   また、使用中も WINDOWS\SYSTEM ディレクトリや、レジストリにも一切書き込み
  66.   しない、行儀の良い?ソフトです(^^)
  67.  
  68.  (V1.10 から)
  69.   ただし、ウィンドウ位置や操作対象ディレクトリその他を保存して、次の起動時に
  70.   再現するための WC.INI ファイルを、起動した WC.EXE と同じディレクトリに
  71.   作ります。   (終了時に自動的に作ります。 最初は無くてもかまいません)
  72.  
  73.   ※ この程度のユーティリティにレジストリを汚されるのを作者は好まない(^^;)ので
  74.      推奨はされていませんが?、INI ファイルを使っています。
  75.        (あまりいないでしょうが、マルチユーザー環境の方、ごめんなさい… 
  76.          ま、複数個、別々にディレクトリを作って入れて下さい)
  77.  
  78.  
  79. 【アンインストール】
  80.  
  81.   ディレクトリごと WC.EXE と WC.INI を消去するだけで終わりです。 
  82.  
  83.  
  84. ---------------------------------------------------------------------------
  85.  
  86. 【使用方法】
  87.  
  88.   Wave file 1、 Wave file 2 を選択して、「比較」ボタンを押すだけです。
  89.  
  90.   結果は、一番下のウィンドウに表示されます。
  91.  
  92.   Wave file は、それぞれ有効なファイルが選択されると、その下の情報ウィンドウ
  93.   に、ファイルの各種情報が表示され、チェックのためにメディアプレーヤーで演奏
  94.   出来るようになります。
  95.  
  96.  (V1.10 から)
  97.   左右のファイルのリストは、他のソフトによるファイルの作成、削除、リネーム
  98.   などと同期して表示が自動的に更新されるので、読み出しソフトと同時使用する
  99.   場合に便利です。
  100.  
  101.  
  102.  
  103.    ◎ 右側のオプションで、表示/比較の方法がいくつか選択できます。
  104.  
  105.  
  106.    [相違データ表示]
  107.  
  108.      "表示しない"
  109.               最後まで比較し、検出した相違サンプルの数のみを表示する。
  110.               (デフォルト) 
  111.  
  112.      "表示する"
  113.               相違サンプルが検出されれば、そのつど相違データを1行づつ表示し、
  114.               指定した行数に達したら中止する。
  115.  
  116.               その行数は、[最大行数] で変更できる。(デフォルト 40、最大 2000) 
  117.  
  118.  
  119.    [比較開始点]
  120.  
  121.      "ゼロをスキップ"
  122.               双方のファイルのデータの先頭の値がゼロのサンプルをとばして、
  123.               ゼロでないサンプルから比較を開始する。 (デフォルト) 
  124.  
  125.      "一致点を探す"
  126.               ゼロでないサンプルから始まるようなデータ(2つのトラックで、
  127.               連続している曲など)の場合に、双方のファイルの先頭から
  128.               指定したサンプル数のブロックを、1サンプルづつずらせながら
  129.               比較していくことによって一致点を検出し、そこから比較を開始する。
  130.  
  131.               一致点の検出に使うブロックのサンプル数は、
  132.               [一致検出サンプル数] で変更できる。 (デフォルト 200、最大 20000)
  133.  
  134.  
  135.     ※注: "一致点を探す" をチェックした場合は、"ゼロをスキップ" も強制的に
  136.           チェックされます。
  137.  
  138.  
  139. ---------------------------------------------------------------------------
  140.  
  141. 【出力例とその説明】
  142.  
  143.  
  144.  [A] 一致した場合 (オプション: デフォルト)
  145.  
  146.   file1: C:\WAVE\TEST1.WAV
  147.   file2: D:\WAVE\TEST2.WAV
  148.   比較中 ...  (開始点  file1: 383,  file2: 125)  ← 双方のゼロでない所から開始
  149.     (file2 終了)                                 ← file2 の方が短かった
  150.     比較サンプル数: 10846711  [一致しました]     ← 一致
  151.  
  152.       (※ 比較開始点の数値は、先頭からのサンプル数のオフセット)
  153.  
  154.  
  155.  [B] 一致しなかった場合 (オプション: デフォルト)
  156.  
  157.   file1: C:\WAVE\TEST3.WAV
  158.   file2: D:\WAVE\TEST4.WAV
  159.   比較中 ...  (開始点  file1: 0,  file2: 0)      ← 双方、先頭からゼロでない
  160.   相違がありました
  161.   比較サンプル数: 9272760  [相違: 9259014]       ← 相違サンプル数が表示される
  162.  
  163.  
  164.  [C] 一致した場合(オプション: 一致点を探す チェック) ただし [B] と同じデータ
  165.  
  166.   file1: C:\WAVE\TEST3.WAV
  167.   file2: D:\WAVE\TEST4.WAV
  168.   開始点サーチ中 ...
  169.   一致点がありました (file1: 257)                ← 一致点 (file1 のずれ 257)
  170.   比較中 ...  (開始点  file1: 257,  file2: 0)    ← 一致点から比較
  171.     (file1 終了)
  172.     比較サンプル数: 9272503  [一致しました]      ← ずらせれば、一致した
  173.  
  174.       (※ 一致点 file1: 257  の意味は、file1 のサンプル数 257 番目以降と、
  175.             file2 の先頭からが一致している、ということ)
  176.  
  177.  
  178.  [D] 一致しない場合 (オプション: 相違データ 表示する チェック、最大行数 5)
  179.   file1: C:\WAVE\TEST3.WAV
  180.   file2: D:\WAVE\TEST4.WAV
  181.   比較中 ...  (開始点  file1: 0,  file2: 0)
  182.   相違がありました
  183.           1:   -347,   431      -997,   478  ← 相違データの表示
  184.           2:   -857,   854      -708,  1510
  185.           3:   -500,  1287       -95,  2474
  186.           4:   -124,  1320       531,  3034
  187.           5:     67,  1123       761,  2839  ← 最大行数まで表示したら中止
  188.   続く...
  189.  
  190.  
  191.       (※ 上の場合、最左の 1: 2: … は、開始点からのオフセット(サンプル数)。
  192.            また、データの表示順は Stereo なので、 
  193.            file1 左ch, 右ch    file2 左ch, 右ch   の順)
  194.  
  195.  
  196.  
  197. ---------------------------------------------------------------------------
  198.  
  199. 【ゼロサンプルをカット】 (ファイル編集機能)
  200.  
  201.  (V1.10 から)
  202.  
  203.   先頭、または末尾に ゼロ のサンプルがあるデータの場合には、「ゼロをカット」
  204.   ボタンがアクティブになり、ゼロをカットしたファイルを作ることが出来るように
  205.   なります。
  206.     (先頭、末尾、両方にゼロのサンプルがあるデータの場合には、
  207.       どちらのゼロ(又は両方)をカットするかを指定することが出来ます)
  208.  
  209.   「ゼロをカット」ボタンを押すと、ダイアログボックスが開くので、
  210.   表示される、作成するファイル名、「先頭のゼロ」「末尾のゼロ」
  211.   のチェックボックスを確認してから、「実行」ボタンを押してください。
  212.  
  213.   ※ファイルのバックアップ
  214.       ダイアログボックスに表示される 作成ファイル名 は、最初は元のファイル名が
  215.     そのまま表示されます。
  216.     普通、そのまま実行ボタンを押せば、元と同じ名前でゼロがカットされた新しい
  217.     ファイルが出来、元のファイルは安全のため、拡張子が .BAK とリネームされて
  218.     バックアップファイルとして残されます。
  219.  
  220.       ※注:よって、書き込まれるドライブの空き容量は、少なくとも
  221.             元のファイルのサイズ以上でなければいけません。
  222.  
  223.     ただし、ダイアログボックスで、作成ファイルの名前を元の名前から変更した
  224.     場合には、その変更した名前で新しいファイルが作成され、元のファイルは
  225.     元の名前のままで残ります。(.BAK とリネームされません)
  226.  
  227.   ◎ダイアログボックスで、作成ファイルの名前を変えれば、違うドライブや、
  228.     違うディレクトリにファイルを作ることが出来ます。
  229.  
  230.  
  231. ---------------------------------------------------------------------------
  232.  
  233. 【その他】
  234.  
  235.  ◎ Wave ファイルのフォーマットは、特に制限は無く、現存のものは
  236.     全て受け付けるはずです。(PCMのみ)
  237.     ただし、比較は、左右同一のフォーマットでないと出来ません。(当り前?)
  238.  
  239.  ◎ 情報ウィンドウでの Waveファイルの演奏時間の秒以下2桁の表示単位は、
  240.     1/100秒です。
  241.     44.1ks/s 16bit Stereo の CD のフォーマットの時でも、今のところフレーム数
  242.     (1/75sec)の表示ではありません。
  243.  
  244.  ◎ 結果は、出力ウィンドウでマウスを右クリックすることで、クリップボードへ
  245.     コピーできます。
  246.  
  247.  ◎ 結果は、比較ボタンを押すたびにクリアされてから、新しい結果が書かれます。
  248.  
  249.  ◎ 結果の表示中の、比較開始点や一致点の数値は、すべて先頭からのサンプル数
  250.     での表示です。
  251.  
  252.  ◎ 相違表示最大行数は 2000 ですが、2000 行すべて出力されないで、終わりの方が
  253.     切れてしまうことがあります。(表示容量の制限のため)
  254.     このため、長いファイルの途中や終わりの方の相違データを見てみたい時には、
  255.  
  256.     ※ ちょっとしたテクニック?
  257.          たくさんの相違のある長いファイルの、途中や終わりの方の相違データを
  258.          表示させるには、最初、[相違データ表示] を "表示しない" にしておいて
  259.          比較開始し、見たいところで、"表示する" にチェックを入れると、
  260.          そこから表示されます。
  261.  
  262.  ◎ 一致検出サンプル数は、デフォルト(200)で、大体は検出できると思いますが、
  263.     本来ゼロであるデータが、一定の値(1とか -1とか)になっているようなデータ
  264.     の場合では、前処理のゼロスキップが効かないので、そのような場合には、
  265.     もっと大きな値にすると、一致点検出が出来る場合もあります。
  266.      (だたし、大きくするほど時間はかかります)
  267.  
  268.  ◎ 一致検出のためにデータをずらせて比較する範囲は、今のところ最大1秒です。
  269.     つまり1秒以上ずれたデータは、一致点検出が出来ません。
  270.  
  271.  ◎ 左右で全く同じファイル(同じディレクトリ)を選択した場合には、
  272.     片方のメディアプレーヤーは無効になります。
  273.  
  274.  
  275.   (以下、V1.10 から)
  276.  
  277.  ◎ 8bit の Wave データでは、16bit のデータと違って、「ゼロ」が数値 0 でなく
  278.     128 (0x80)なのですが、この場合もゼロとして扱うようになりました。
  279.  
  280.  ◎ 「ゼロをカット」での編集時、ダイアログで作成ファイル名を元の名前のまま
  281.     にした時のファイル作成手順の詳細は次の通りです。
  282.       1.元のファイルの拡張子を .WAV から .W$$ に変えたファイル名で、
  283.         ゼロをカットした新しいファイルを作成。
  284.       2.新しいファイルが正常に作成できたら、元のファイルを .BAK にリネーム。
  285.       3.新しいファイルを元のファイルと同じ名前にリネーム。(.W$$  --> .WAV)
  286.  
  287.  ◎ メディアプレーヤーの Step(早送り)/Back(巻戻し) ボタンは、停止中のみ
  288.     動作します。
  289.     また、それぞれの進む量は全体の 約1/10 になっています。
  290.  
  291.  
  292. ---------------------------------------------------------------------------
  293.  
  294.    ※ このプログラムは  Borland C++ Builder 3  で作成されています。
  295.  
  296.    ※ Windows95/98/NT4 で動作します。
  297.  
  298.    ※ V1.0 は、実は先に適当に作った DOS 版からの移植!
  299.          DOS版は、一致点検出が無いだけだが、なんとサイズが 15KB しか無い!! 
  300.          Windows版のなんとデカイこと(^^)
  301.  
  302. ---------------------------------------------------------------------------
  303.  
  304. 【免責】
  305.  
  306.  本プログラムを使用した上でのいかなる損害についても、作者は一切の責任を
  307.  負いません。
  308.  
  309. ---------------------------------------------------------------------------
  310.  
  311. ◎ このプログラムは、フリーソフトウェアです。
  312.  
  313.     著作権は efu にあります。
  314.  
  315.  
  316. ※転載を希望される場合には、必ず先にメールで連絡してください。
  317.   無断での転載はしないでください。
  318.  
  319.  
  320. ご感想、障害の報告、その他、こちらまで宜しくお願いいたします。
  321.  
  322. E-Mail:  efu@mrj.biglobe.ne.jp
  323.  
  324.  
  325. 最新版は、
  326.  
  327. http://member.nifty.ne.jp/efu/
  328.  
  329.  (CD-R で作る CD-DA のための最適なメディアの情報もあります)
  330.  
  331.  
  332.                                               1998.9.1   efu
  333.  
  334. ---------------------------------------------------------------------------
  335.  
  336. Wave Compare 履歴
  337.  
  338. 98.06.06  V1.00   DOS版より移植
  339. 98.06.20  V1.01   メディアプレーヤーのボタンが、演奏終了時に自動的に Off
  340.                   (初期状態の演奏待機状態) にならないことがある (BCB3 
  341.                   コンポーネントのbug?) のを回避。
  342.                   および、WindowsNT4 での動作確認。
  343. 98.09.01  V1.10   1.ウィンドウ位置や対象ディレクトリその他を保存し、次の起動時
  344.                     に再現できるようにした。 WC.INI 追加。
  345.                   2.対象ディレクトリ中で、ファイルの作成、削除、リネーム等の
  346.                     変更があった場合に、それに同期して表示が自動的に更新される
  347.                     ようにした。
  348.                   3.先頭のゼロだけでなく、末尾のゼロのサンプル数も表示する
  349.                     ようにした。
  350.                   4.サンプルが8bitの場合のゼロ(0x80)も、ゼロとして扱うように
  351.                     した。
  352.                   5.ファイルの先頭、あるいは末尾のゼロをカットして編集
  353.                     できるようにした。
  354.                   6.MediaPlayer に Step/Back ボタンを追加、早送り/巻戻し
  355.                     が出来るようになった。(停止中のみ)
  356.  
  357. ---------------------------------------------------------------------------
  358.